package utils

import (
	"strings"
	"sync"
)

var (
	stringUtilsTemp *stringUtils
	stringUtilsOnce sync.Once
)

type stringUtils struct{}

func NewStringUtils() *stringUtils {
	stringUtilsOnce.Do(func() {
		stringUtilsTemp = &stringUtils{}
	})
	return stringUtilsTemp
}

func (m *stringUtils) Capitalize(str string) string {
	if str == "" {
		return ""
	}
	firstChar := strings.ToUpper(string(str[0]))
	return firstChar + str[1:]
}
